package avaliacao.Handler;

import avaliacao.DAO.DAOAvaliacao;
import avaliacao.DTO.DTOAvaliacao;
import avaliacao.DTO.DTOAvaliador;
import avaliacao.DTO.DTOQuestion;
import avaliacao.DTO.DTOUniversidade;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class QuestionHandler implements HandlerInterface {
    private static Integer OFFSET_DEFAULT = 0;
    private static Integer LIMIT_DEFAULT = 10;

    public String process(HttpServletResponse rp, HttpServletRequest rq) {

        //-------------------------------------------------------------------------
        int offset, limit;
        String submitbutton = rq.getParameter("submitbutton");

        if (submitbutton.equals("loadQuestions")) {
            ArrayList<DTOQuestion> list = new ArrayList<DTOQuestion>();

            DAOAvaliacao dao = new DAOAvaliacao();

            if (rq.getParameter("OFFSET") == null)
                offset=OFFSET_DEFAULT;
            else
                offset = new Integer(rq.getParameter("OFFSET")).intValue();
            if (rq.getParameter("LIMIT") == null)
                limit = LIMIT_DEFAULT;
            else
                limit = new Integer(rq.getParameter("LIMIT")).intValue();
            list = dao.getPerguntas(offset, limit);

            rq.setAttribute("QUESTIONS", list);
            return "/cadastroAvaliacao.jsp";
            //--------------------------------------------------------------------

        } else if (submitbutton.equals("loadQuestionary")) {
            DTOAvaliacao dto = new DTOAvaliacao();
            DAOAvaliacao dao = new DAOAvaliacao();

            DTOAvaliador aval = new DTOAvaliador();
            aval.setID(new Integer(rq.getParameter("avaliador")).intValue());

            DTOUniversidade univ = new DTOUniversidade();
            univ.setId(new Integer(rq.getParameter("universidade")).intValue());
            dto = dao.getAvaliacao(aval, univ,
                    new Integer(rq.getParameter("OFFSET")).intValue(),
                    new Integer(rq.getParameter("LIMIT")).intValue());

            rq.setAttribute("QUESTIONARY", dto);
            return "/formulario.jsp";
             //--------------------------------------------------------------------

        }   /*else if (submitButton.equals("buscar")) {
            String parametro_busca = rq.getParameter("parametro_busca");
            if (parametro_busca != null && !parametro_busca.isEmpty()) {
                parametro_busca = avaliacao.Util.removeDiacriticals(parametro_busca.trim()).toUpperCase();
                if (parametro_busca != null && !parametro_busca.isEmpty()) {
                    ArrayList<PropDTO> lista = (new ProprietariosDAO()).getProprietarioByAny(parametro_busca, 3, 10);
                    rq.setAttribute("PROPRIETARIOS", lista);
                }
            }
            return "/proprietarios.jsp";
            //-------------------------------------------------------------------------

        } else if (submitButton.equals("selecionado")) {
            PropDTO dto = (new ProprietariosDAO()).getProprietarioBySerialno(
                    rq.getParameter("prop_selecionado"));
            rq.setAttribute("SELECIONADO", dto);
            rq.setAttribute("SALVAR_NOVO", (new Boolean(false)));
            return "/proprietarioscompleto.jsp";
            //-------------------------------------------------------------------------

        } else if (submitButton.equals("novo")) {
            rq.setAttribute("SALVAR_NOVO", (new Boolean(true)));
            return "/proprietarioscompleto.jsp";

            //-------------------------------------------------------------------------
        } else if (submitButton.equals("autocomplete")) {
            String parametro_busca = removeDiacriticals(
                    rq.getParameter("parametro_busca").trim()).toUpperCase();
            rq.setAttribute("PARAMETROBUSCA", parametro_busca);

            String currentpage = rq.getParameter("currentpage");
            System.out.println("autocomplete - current page: " + currentpage);
            String lastpage = rq.getParameter("lastpage");
            String paginador = rq.getParameter("paginador");

            int currpage = 1;
            if (currentpage != null && !currentpage.isEmpty()) {
                currpage = (new Integer(currentpage)).intValue();
            }

            int pagesize = 5;
            int offset = pagesize * (currpage - 1);
            if (parametro_busca != null && !parametro_busca.isEmpty()) {
                ArrayList<PropDTO> lista = (new ProprietariosDAO()).getProprietarioByAny(parametro_busca, offset, pagesize);
                rq.setAttribute("PROPRIETARIOS", lista);
            }

            PaginacaoDTO paginacao = new PaginacaoDTO();
            paginacao.setLastpage(8);
            paginacao.setCurrentpage(currpage);
            rq.setAttribute("PAGINACAO", paginacao);

            DialogoDTO dialogo = new DialogoDTO(NivelEnum.NORMAL, "RESULTADO DA BUSCA...");
            rq.setAttribute("DIALOGO", dialogo);

            return "/proprietarios.jsp";
            //-------------------------------------------------------------------------
        } else if (submitButton.equals("selectchange")) {
            String parametro_busca = removeDiacriticals(
                    rq.getParameter("parametro_busca").trim()).toUpperCase();
            rq.setAttribute("PARAMETROBUSCA", parametro_busca);

            String currentpage = rq.getParameter("currentpage");
            System.out.println("selectchange - current page: " + currentpage);
            String lastpage = rq.getParameter("lastpage");
            String paginador = rq.getParameter("paginador");

            int currpage = 1;
            if (currentpage != null && !currentpage.isEmpty()) {
                currpage = (new Integer(currentpage)).intValue();
            }

            System.out.println("selectchange - paginador: " + paginador);
//            if(paginador!=null && !paginador.isEmpty())
//                currpage = (new Integer(paginador)).intValue();

            System.out.println("selectchange - currpage: " + currpage);

            int pagesize = 5;
            int offset = pagesize * (currpage - 1);
            if (parametro_busca != null && !parametro_busca.isEmpty()) {
                ArrayList<PropDTO> lista = (new ProprietariosDAO()).getProprietarioByAny(parametro_busca, offset, pagesize);
                rq.setAttribute("PROPRIETARIOS", lista);
            }

*/
            return "/login.jsp";
        }
    }
